﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Do_an_C_sharp.DAL;
using Do_an_C_sharp.BLL;

namespace Do_an_C_sharp.GUI
{
    public partial class NhanVienGUI : Form
    {
        NhanVienController NHANVIEN = new NhanVienController();
        public NhanVienGUI()
        {
            InitializeComponent();
        }

        public bool checkinfo()
        {
            foreach (Control ctr in groupBox1.Controls)
            {
                if (ctr.Name != "txtDienthoai")
                {
                    if (ctr.Text == "")
                    {
                        MessageBox.Show("Vui lòng điển đầy đủ thông tin!!!!!!");
                        return false;
                    }
                    else
                        if (ctr.Text.Length > 50)
                        {
                            MessageBox.Show("Dữ liệu nhập vào không được dài quá 50 kí tự!!!!!!");
                            return false;
                        }
                }
                else
                {
                    if (ctr.Text != "")
                    {
                        if (ctr.Text.Length > 11 || ctr.Text.Length < 9)
                        {
                            MessageBox.Show("Điện thoại phải dài từ 9 đến 11 số!!!!!!");
                            return false;
                        }
                    }
                }
            }
            return true;
        }

        private void capnhat()
        {
            NHANVIEN.luu();
            dataGridView1.DataSource = NHANVIEN.laynhanvien();
        }
        private void NhanVien_Load(object sender, EventArgs e)
        {
            capnhat();
            txtManv.Enabled = false;
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            //FileStream output = new FileStream("nhanvien.txt", FileMode.OpenOrCreate, FileAccess.Write);
            //StreamWriter w = new StreamWriter(output);
            //foreach (Do_an_C_sharp.DAL.NhanVien nv in NHANVIEN.laynhanvien())
            //{
            //    w.WriteLine("{0}",nv.LUONGCOBAN);
            //}
            //w.Close();
            //output.Close();
            NHANVIEN.luu();
            capnhat();
        }

        private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            int dong = e.RowIndex;
            string ma = dataGridView1.Rows[dong].Cells["MANHANVIEN"].Value.ToString();
            NhanVien nv = NHANVIEN.timelement(ma);
            txtChucvu.Text = nv.CHUCVU;
            txtDiachi.Text = nv.DIACHI;
            txtDienthoai.Text = nv.DIENTHOAI;
            txtLuong.Text = nv.LUONGCOBAN.ToString();
            txtManv.Text = ma;
            txtNamsinh.Text = nv.NAMSINH.ToString();
            txtTennv.Text = nv.TENNHANVIEN;
            if (nv.GIOITINH == "Nam")
                radNam.Checked = true;
            else
                radNu.Checked = true;
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnReload_Click(object sender, EventArgs e)
        {
            disable(true);
            capnhat();
            btnThem.Text = "Thêm";
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            DialogResult kt;
            if ((kt = MessageBox.Show("Bạn chắc chắn muốn xóa nhân viên này?", "Xác nhận", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)) == DialogResult.OK)
            {
                NHANVIEN.xoa(txtManv.Text.Trim());
                capnhat();
            }
        }

        private void btnTimkiem_Click(object sender, EventArgs e)
        {
            string key = uCtimkiem1.tratri();
            if (uCtimkiem1.isTimtheoma())
            {
                if (NHANVIEN.timelement(key) != null)
                {
                    dataGridView1.DataSource = NHANVIEN.timma(key);
                }
                else
                    MessageBox.Show("Không tìm thấy");
            }
            else
            {
                dataGridView1.DataSource = NHANVIEN.timten(key);
            }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            if (checkinfo())
            {
                string gioitinh;
                if (radNam.Checked == true)
                    gioitinh = "Nam";
                else
                    gioitinh = "Nu";
                if (NHANVIEN.sua(txtManv.Text, txtTennv.Text, Convert.ToInt32(txtNamsinh.Text), gioitinh, txtDienthoai.Text, txtDiachi.Text, txtChucvu.Text, Convert.ToInt32(txtLuong.Text)))
                    MessageBox.Show("Sửa thành công");
                else
                    MessageBox.Show("Thất bại vì lỗi update sql");
                capnhat();
            }
        }
        private void disable(bool check)
        {
            btnSua.Enabled = btnTimkiem.Enabled = btnXoa.Enabled = check;
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            if (btnThem.Text == "Thêm")
            {
                txtManv.Enabled = true;
                txtManv.Text = txtChucvu.Text = txtDiachi.Text = txtDienthoai.Text = txtLuong.Text = txtNamsinh.Text = txtTennv.Text = "";
                btnThem.Text = "Cập nhật";
                disable(false);
            }
            else
            {
                if (NHANVIEN.timelement(txtManv.Text.Trim()) != null)
                {
                    MessageBox.Show("Nhân viên này đã tồn tại");
                }
                else
                {
                    if (checkinfo())
                    {
                        string gioitinh;
                        if (radNam.Checked == true)
                            gioitinh = "Nam";
                        else
                            gioitinh = "Nu";
                        NHANVIEN.them(txtManv.Text, txtTennv.Text, Convert.ToInt32(txtNamsinh.Text), gioitinh, txtDienthoai.Text, txtDiachi.Text, txtChucvu.Text, Convert.ToInt32(txtLuong.Text));
                        txtManv.Enabled = false;
                        MessageBox.Show("Thêm thành công");
                        btnThem.Text = "Thêm";
                        capnhat();
                        disable(true);
                    }
                }
            }
        }

        private void txtNamsinh_KeyPress(object sender, KeyPressEventArgs e)
        {
            char c = e.KeyChar;
            if (!char.IsDigit(c))
                if (c != '\b')
                    e.Handled = true;
        }

        private void txtManv_Click(object sender, EventArgs e)
        {
            TextBox t = (TextBox)sender;
            t.SelectAll();
        }
    }
}
